// for sample chart
function generateData() {
	var data = [];
	for (var i = 0; i < 12; ++i) {
		data.push([Date.monthNames[i],
				(Math.floor(Math.random() * 11) + 1) * 100]);
	}
	return data;
}
Ext.onReady(function() {
	Ext.QuickTips.init(); // 实现错误提示
	Ext.form.Field.prototype.msgTarget = 'side';

	// get the client explore width and height
	var height = this.document.documentElement.clientHeight;
	var width = this.document.documentElement.clientWidth;

	// store start
	var rateProxy = new Ext.data.HttpProxy({
				url : "/timiz-project-dp/pivot?method=get",
				params : {
					method : 'POST'
				}
			});

	var ratestore = new Ext.data.Store({
				proxy : rateProxy,
				reader : new Ext.data.JsonReader({})
			});
	var pivotGrid = new Ext.grid.PivotGrid({
				width : 600,
				height : 91,
				store : myStore,
				measure : 'iq',
				aggregator : 'max',
				topAxis : [{
							width : 80,
							dataIndex : 'birthDecade'
						}, {
							dataIndex : 'handedness'
						}]
			});
	var twkcm = new Ext.grid.ColumnModel([{
				header : "发生区域",
				dataIndex : "happenArea",
				sortable : true
			}, {
				header : "频率",
				dataIndex : "rate",
				sortable : true
			}]);
	var twkpp = new Ext.grid.GridPanel({
				id : 'twkpp',
				title : '发案率',
				region : 'center',
				autoShow : true,
				height : height,
				width : width,
				split : true,
				minSize : 175,
				maxSize : 400,
				frame : true,
				columnLines : true,
				store : ratestore,
				cm : twkcm,
				scrollable : true
			});
	// store end
	// 选择字段响应事件
	var filterFields;
	// combine all that into one huge form
	var fp = new Ext.Window({
				title : "选择字段",
				height : 300,
				width : 450,
				layout : 'table',
				layoutConfig : {
					columns : 3
				},
				items : [{
							id : 'Vv',
							// bodyStyle : 'padding-right:5px;',
							items : {
								xtype : 'fieldset',
								title : '维度列表',
								height : 160,
								defaultType : 'checkbox', // each item will be
								// a checkbox
								items : [{
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '基本维度',
											name : 'baseV',
											id : 'baseV'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '时间维度',
											name : 'timeV',
											id : 'timeV'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '区域维度',
											name : 'zoneV',
											id : 'zoneV'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '部门维度',
											name : 'deptV',
											id : 'deptV'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '阶段维度',
											name : 'stepV',
											id : 'stepV'
										}]
							}
						}, {
							// bodyStyle : 'padding-left:5px;',
							id : 'Tt',
							items : {
								xtype : 'fieldset',
								title : '指标列表',
								height : 160,
								defaultType : 'checkbox', // each item will be
								// a radio button
								items : [{
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '基本指标',
											name : 'baseT',
											id : 'baseT'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '扩展指标',
											name : 'implT',
											id : 'implT'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '处置指标',
											name : 'dealT',
											id : 'dealT'
										}, {
											fieldLabel : '',
											labelSeparator : '',
											boxLabel : '派遣指标',
											name : 'dispatchT',
											id : 'dispatchT'
										}]
							}
						}],
				scrollable : true,
				modal : true,
				buttons : [{
							text : "确认",
							icon : "extjsLib/resources/images/default/dd/disk.png",
							handler : function() {
								// 对checkbox进行信息统计
								fields = '';
								var baseV = Ext.getCmp('baseV').getValue();
								var timeV = Ext.getCmp('timeV').getValue();
								var zoneV = Ext.getCmp('zoneV').getValue();
								var deptV = Ext.getCmp('deptV').getValue();
								var stepV = Ext.getCmp('stepV').getValue();

								var baseT = Ext.getCmp('baseT').getValue();
								var implT = Ext.getCmp('implT').getValue();
								var dealT = Ext.getCmp('dealT').getValue();
								var dispatchT = Ext.getCmp('dispatchT')
										.getValue();
								if (baseV) {
									fields += 'baseV,';
								}
								if (timeV) {
									fields += 'timeV,';
								}
								if (zoneV) {
									fields += 'zoneV,';
								}
								if (deptV) {
									fields += 'deptV,';
								}
								if (stepV) {
									fields += 'stepV,';
								}

								if (baseT) {
									fields += 'baseT,';
								}
								if (implT) {
									fields += 'implT,';
								}
								if (dealT) {
									fields += 'dealT,';
								}
								if (dispatchT) {
									fields += 'dispatchT,';
								}
								// Ext.Ajax.request({
								// url : "selectFields",
								// method : "post",
								// params : {
								// fields : fields
								// }
								// });
								filterFields = fields;

								var ccProxy = new Ext.data.HttpProxy({
											url : "/timiz-project-dp/selectFields",
											params : {
												filterFields : fields
											}
										});
								ccstore.reload({
											params : {
												filterFields : fields
											}
										});
								fp.close();
							}
						}, {
							text : "取消",
							icon : "extjsLib/resources/images/default/dd/delete.gif",
							handler : function() {
								fp.close();
							}
						}]
			});

	caProxy = new Ext.data.HttpProxy({
				url : "/timiz-project-dp/selectFields"
			});
	var ccstore = new Ext.data.JsonStore({
				// url : '/selectFields',
				// fields : ['typeID', 'typeValue'],
				// params : {
				// method : "POST",
				// filterFields : filterFields
				// },
				fields : ['typeID', 'typeValue'],
				proxy : caProxy,
				reader : new Ext.data.JsonReader({})
			});

	// 筛选字段开始

	var datepp = new Ext.Window({
				title : "筛选字段",
				height : 400,
				width : 300,
				layout : 'form',
				items : [{
							xtype : 'checkbox',
							boxLabel : '上报时间'
						}, {
							xtype : 'datefield',
							name : 'poststarttime'
						}, {
							xtype : 'datefield',
							name : 'postendtime'
						}, {
							xtype : 'checkbox',
							boxLabel : '处置截止时间'
						}, {
							xtype : 'datefield',
							name : 'dealstarttime'
						}, {
							xtype : 'datefield',
							name : 'dealendtime'
						}, {
							xtype : 'checkbox',
							boxLabel : '结案时间'
						}, {
							xtype : 'datefield',
							name : 'endcasestarttime'
						}, {
							xtype : 'datefield',
							name : 'endcaseendtime'
						}]

			});
	// 筛选字段结束
	// top界面
	var top = new Ext.form.FormPanel({
				title : "新建综合分析",
				region : 'center',
				autoShow : true,
				width : width,
				autoHeight : true,
				closable : true,
				labelAlign : "right",
				buttonAlign : "center",
				frame : true,
				layout : "form",
				tbar : [{
							id : 'selectField',
							icon : 'static/images/magnifier.png',
							text : '选择字段',
							handler : function() {// 此处填写选择字段点击响应事件
								fp.show();
							}
						}, {
							xtype : "tbseparator"
						}, {
							id : 'dataFilter',
							icon : 'static/images/databases.png',
							text : '筛选数据',
							handler : function() {// 此处填写筛选数据点击响应事件
								datepp.show();
							}
						}, {
							xtype : "tbseparator"
						}, {
							id : 'saveAnalysis',
							icon : 'static/images/cog.png',
							text : '保存分析',
							handler : function() {// 此处填写保存分析点击响应事件
								Ext.Ajax.request({
									url:"/timiz-project-dp/excel",
									method : "post",
									success : function() {
											Ext.MessageBox.alert("result",
													"恭喜，导出成功！");
											ccstore.reload();
										},
										failure : function() {
											Ext.MessageBox.alert("result",
													"导出失败");
										},
									params:{}
								});
							}
						}, {
							xtype : "tbseparator"
						}, {
							id : 'showLog',
							icon : 'static/images/application_view_list.png',
							text : '发案率分析',
							handler : function() {// 此处填写显示日志点击响应事件
								// Ext.Msg.alert("此处填写显示日志点击响应事件!");
								ratestore.reload({
											params : {
												method : 'POST'
											}
										});
							}
						}, {
							xtype : "tbseparator"
						}, {
							lable : '',
							width : 60
						}, '字段：', new Ext.form.ComboBox({
									id : 'fieldComboBox',
									editable : false,
									typeAhead : true,
									triggerAction : 'all',
									lazyRender : true,
									emptyText : '请选择字段',
									// autoWidth : true,
									// fields : ['typeID', 'typeValue'],
									width : 150,
									mode : 'local',
									store : ccstore,
									valueField : 'typeID',
									displayField : 'typeValue',
									queryParam : ['typeID']

								}), '汇总类型：', new Ext.form.ComboBox({
									id : 'gatherType',
									editable : false,
									typeAhead : true,
									triggerAction : 'all',
									lazyRender : true,
									emptyText : '请选择汇总类型',
									// autoWidth : true,
									width : 150,
									mode : 'local',
									/** Fix此处按需改成googlesuggest模式 */
									store : new Ext.data.ArrayStore({
												id : 1,
												fields : ['gatherTypeID',
														'gatherTypeValue'],
												data : [['1', '类型1'],
														['2', '类型2'],
														['3', '类型3'],
														['4', '类型4'],
														['5', '类型5']]
											}),
									valueField : 'gatherTypeID',
									displayField : 'gatherTypeValue'

								})],
				body : false
			});
	top.render(Ext.getBody());

	/** 分析面板grid Start */
	var PersonRecord = Ext.data.Record.create([{
				name : 'eyeColor',
				type : 'string'
			}, {
				name : 'birthDecade',
				type : 'string'
			}, {
				name : 'handedness',
				type : 'string'
			}, {
				name : 'gender',
				type : 'string'
			}, {
				name : 'height',
				type : 'int'
			}, {
				name : 'iq',
				type : 'int'
			}]);

	var myStore = new Ext.data.Store({
				url : '/timiz-project-dp/area?method=twk',
				// autoLoad : true,
				reader : new Ext.data.JsonReader({
							root : 'rows',
							idProperty : 'id'
						}, PersonRecord)
			});
	/** 分析面板grid Over */

	// 左侧面板Start
	var win2 = new Ext.Window({
				title : "图表",
				layout : 'border',
				height : height - top.getHeight(),
				width : width,
				item : [digram],
				frame : true,
				autoshow : true
			});
	// 图标显示
	var digram = new Ext.FormPanel({
				title : "图表",
				region : 'center',
				autoShow : true,
				width : width,
				height : 500,
				closable : true,
				labelAlign : "right",
				buttonAlign : "center",
				frame : true,
				renderTo : document.body,
				items : [{
							xtype : 'columnchart',
							store : ratestore,
							yAxis : new Ext.chart.NumericAxis({
										title : 'rate'
									}),
							url : 'static/extjsLib/resources/charts.swf',
							xField : 'happenArea',
							yField : 'rate',
							xAxis : new Ext.chart.CategoryAxis({
										title : '地区'
									}),
							yAxis : new Ext.chart.NumericAxis({
										title : '发案率'
									}),
							extraStyle : {
								xAxis : {
									labelRotation : -90
								}
							}
						}]
			});
	// 左侧面板Over
	// 分析面板
	var analysis = new Ext.FormPanel({
				title : "分析",
				region : 'center',
				autoShow : true,
				width : width,
				height : 150,
				closable : true,
				// renderTo : document.body,
				labelAlign : "right",
				buttonAlign : "center",
				frame : true,
				tbar : [{
							text : '图表：',
							handler : function() {
								win2.show(true);
							}
						}],
				items : [twkpp]
			});

	// 主面板区域

	var main = new Ext.Panel({
				layout : 'border',
				height : height - top.getHeight(),
				width : width,
				items : [analysis],
				autoshow : true
			});
	main.render(Ext.getBody());

});